{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook shows how to create FVCOM forcing data for an unstructured grid.\n",
    "\n",
    "We need an SMS unstructured grid (`.2dm` file) in which we have defined some nodestrings to act as open boundaries.\n",
    "\n",
    "We'll be making the following files:\n",
    "\n",
    "- casename_grd.dat\n",
    "- casename_dep.dat\n",
    "- sigma.dat\n",
    "- casename_obc.dat\n",
    "- casename_cor.dat\n",
    "- casename_elevtide.nc\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from datetime import datetime\n",
    "import PyFVCOM as pf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Define a start, end and sampling interval for the tidal data\n",
    "start = datetime.strptime('2018-04-01', '%Y-%m-%d')\n",
    "end = datetime.strptime('2018-05-01', '%Y-%m-%d')\n",
    "interval = 1 / 24  # 1 hourly in units of days\n",
    "model = pf.preproc.Model(start, end, 'estuary.2dm', sampling=interval,\n",
    "                         native_coordinates='spherical', zone='20N')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Define everything we need for the open boundaries.\n",
    "\n",
    "# We need the TPXO data to predict tides at the boundary. Get that from here:\n",
    "#    ftp://ftp.oce.orst.edu/dist/tides/Global/tpxo9_netcdf.tar.gz\n",
    "# and extract its contents in the PyFVCOM/examples directory.\n",
    "tpxo_harmonics = 'h_tpxo9.v1.nc'\n",
    "constituents = ['M2', 'S2']\n",
    "for boundary in model.open_boundaries:\n",
    "    # Create a 5km sponge layer for all open boundaries.\n",
    "    boundary.add_sponge_layer(5000, 0.001)\n",
    "    # Set the type of open boundary we've got.\n",
    "    boundary.add_type(1)  # prescribed surface elevation\n",
    "    # And add some tidal data.\n",
    "    boundary.add_tpxo_tides(tpxo_harmonics, predict='zeta', constituents=constituents, interval=interval)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Make a vertical grid with 21 uniform levels\n",
    "model.sigma.type = 'uniform'\n",
    "model.dims.levels = 21"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Write out the files for FVCOM.\n",
    "model.write_grid('estuary_grd.dat', depth_file='estuary_dep.dat')\n",
    "model.write_sponge('estuary_spg.dat')\n",
    "model.write_obc('estuary_obc.dat')\n",
    "model.write_coriolis('estuary_cor.dat')\n",
    "model.write_sigma('sigma.dat')\n",
    "model.write_tides('estuary_elevtide.nc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7faa71cdb630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's have a look at the grid we've just worked on.\n",
    "mesh = pf.read.Domain('estuary.2dm', native_coordinates='spherical', zone='20N')\n",
    "domain = pf.plot.Plotter(mesh, figsize=(20, 10), tick_inc=(0.1, 0.05), cb_label='Depth (m)')\n",
    "domain.plot_field(-mesh.grid.h)\n",
    "for boundary in model.open_boundaries:\n",
    "    domain.axes.plot(*domain.m(boundary.grid.lon, boundary.grid.lat), 'ro')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
